<?php

namespace App\Common;


use App\X\EHelper;
use XWX\Common\H;

class Sys extends Base
{
    /**
     * 授权调试模板
     * @return string
     */
    static function getOauthDevKey()
    {
        return "oauth_dev";
    }


    /**
     * 系统应用
     *
     * @return array
     */
    static function funcSysApps()
    {
        $apps = [
            'account', 'pwd', 'test', 'z_common', 'app_admin',
            'setting'
        ];

        return $apps;
    }

    /**
     * 系统应用
     * @param $app_id
     * @return bool
     */
    static function funcIsSysApp($app_id)
    {
        $sys_apps = Sys::funcSysApps();
        if (in_array(H::funcStrToLower($app_id), $sys_apps))
        {
            return true;
        }

        return false;
    }

    /**
     * 小程序
     * @param $app_id
     * @return bool
     */
    static function funcIsWxApp($app_id)
    {
        if (H::funcStrStartsWith(H::funcStrToLower($app_id), 'wxapp'))
        {
            return true;
        }

        return false;
    }


    static function funcAppRoot()
    {
        return EHelper::funcGetConf('SYS.app_root');
    }

    static function funcAppOauthRoot()
    {
        return EHelper::funcGetConf('SYS.oauth_root');
    }

    static function funcStaticFileRoot()
    {
        return EHelper::funcGetConf('SYS.static_file_root');
    }


    /**
     * 获取文件访问链接
     *
     * @param $val
     * @return string
     */
    static function funcGetFileUrl($val)
    {
        $root = static::funcStaticFileRoot();

        return "{$root}_upload/{$val}";
    }


    /**
     * 通用签名规则
     *
     * @param $data
     * @param $key
     * @param null $exclude_keys
     * @return string
     */
    static function funcGetSign($data, $key, $exclude_keys = null)
    {
        $string1 = H::funcStrQueryFromArray($data, $exclude_keys);
        Log::funcLogDebug(__METHOD__, $string1);
        $string2 = $string1 . "&key={$key}";
        Log::funcLogDebug(__METHOD__, $string2);

        $sign = H::funcStrMD5($string2);
        Log::funcLogDebug(__METHOD__, $sign);


        return $sign;
    }
}